package com.boco.blch.analysiser.compliance.HW.data;

import org.apache.commons.lang.StringUtils;

import com.boco.blch.analysiser.compliance.ComplianceResolved;

/**
 * HDFS运行程序帐号权限最小化安全基线要求项   【控制节点】+【数据节点】
 * 【控制节点】
 * 1、执行 ps -ef|grep -v grep |grep NameNode|awk '{print $1}'，获取到 用户名
 * 2、使用 groups 【用户名] 获得用户所属用户组，如
 * omm:wheel dialout video
 * 3、判断第二步的输出 是否 有 sys,root,adminsrator,super等；
 * --下面这项，可能没有
 * 1、执行 ps -ef|grep -v grep |grep JournalNode|awk '{print $1}'，获取到 用户名
 * 2、使用 groups 【用户名] 获得用户所属用户组，如
 * omm:wheel dialout video
 * 3、判断第二步的输出 是否 有 sys,root,adminsrator,super等；
 * 
 * 【数据节点】
 * 1、执行 ps -ef|grep -v grep |grep Datanode|awk '{print $1}'，获取到 用户名
 * 2、使用 groups 【用户名] 获得用户所属用户组，如
 * omm:wheel dialout video
 * 3、判断第二步的输出 是否 有 sys,root,adminsrator,super等；
 * 
 * @author admin
 *
 */
public class BOCO_Hdfs_VisitCtl_AppAcountMinAuth implements ComplianceResolved {

	@Override
	public int realEchoResolved(String echoResult) {
		int result=SUCCESS;
		if(echoResult != null && !StringUtils.isEmpty(echoResult)){
			String[] Results=echoResult.split("\n");
			for(int i=0;i<Results.length;i++){
				if(Results[i].contains(" : ")){
					String[] Result=Results[i].split(" : ");
					if(Result[0].equals("root")||Result[0].equals("supervisor")|Result[0].equals("administrator")){
						result = FAILED;
						break;
					}else if(Result[1].equals("root")||Result[1].equals("super")||Result[1].equals("administrator")||Result[1].equals("sys")){
						result = FAILED;
						break;
					}else{
						result = SUCCESS;
					}
				}
			}
		}
		return result;
	}
	
	


}
